<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Application\Model\Entity\Utilisateur;
use Application\Model\Entity\Boutique;

class TestDoctrineController extends AbstractActionController
{
    // La méthode est accessible à l'url http://www.monprojet.com/test-doctrine
    public function indexAction()
    {
        $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
        
        $repEtat = $em->getRepository('Application\Model\Entity\Etat');
        $repUtilisateur = $em->getRepository('Application\Model\Entity\Utilisateur');
        
        /**************************
        * Exemple requêtes SELECT *
        **************************/
        // Rechercher une entite par clef primaire
        $etat1 = $repEtat->find(1);
        //var_dump($etat1);
        
        // Rechercher une entite avec criteres
        $etat3 = $repEtat->findOneBy(array('libelle' => 'Vendu'));
        //var_dump($etat3);
        
        // Rechercher toutes les entites (renvoie un tableau d'objets)
        $etats = $repEtat->findAll();
        //var_dump($etats);
         
        // Rechercher toutes les entites avec criteres (renvoie un tableau d'objets)
        $utilisateurs = $repUtilisateur->findBy(array('prenom' => 'Florian'));
        //var_dump($utilisateurs);
        
        /**************************
        * Exemple requêtes INSERT *
        **************************/
        // Création d'un utilisateur
        $utilisateur = new Utilisateur(null, 0, 'nom', 'prenom', 'mail', 'login', 'password');
        
        // Création d'une boutique
        $boutique = new Boutique(null, 'nom', 0);
        
        // Renseigner la boutique de l'utilisateur (qui correspond à la clef etrangere dans la table utilisateur)
        $utilisateur->setBoutique($boutique);
        
        // Sauvegarder l'utilisateur (et sa boutique) dans la base 
        //$em->persist($utilisateur);
        //$em->flush();
        //die('OK insert into utilisateur et insert into boutique !');
        
        die;
    }
}
